Applying social computing paradigm to software installation and configuration

ABSTRACT

A method for installation and configuration of a software product includes installing a software product and determining configuration settings of the software product based upon a social network of peers. A system for installation and configuration of at least one software product includes at least one client install package capable of utilizing a social network for at least one of installing software; transmitting configuration settings; transmitting post-installation configuration settings; or responding to post-installation configuration modifications; and a server that stores and aggregates the configuration settings of a plurality of users, forming at least one social network.

This application is a continuation application of U.S. Ser. No.11/614,291 filed on Dec. 21, 2006 now U.S. Pat. No. 8,136,090 in theU.S. Patent and Trademark Office, the entirety of which is incorporatedherein by reference.

I. FIELD OF THE INVENTION

This invention relates to a system and methods for applying a socialcomputing paradigm for installation and configuration of at least onesoftware product.

II. BACKGROUND OF INVENTION

There are several inadequate approaches to software installation andconfiguration. One approach is to provide installation/configurationdefaults. However, such defaults are not tailored to each user. Thus,each user has to spend significant time tailoring the software productto suit his or her specific needs. Another approach to softwareinstallation/configuration is to have a user select from a tier of usertypes, for example, expert, intermediate, or novice. Such tiers,however, are too broad. A programmer is by definition not a novice.Therefore, any tiers or settings developed by a programmer may bemisaligned with the corresponding user's capabilities. Further, usersmay be unable to correctly categorize themselves into one of thesepreset tiers.

Still another approach is to provide custom automation, such asenterprise software distribution. Custom automation tailors softwaredistribution packages to a group. Individuals are lumped intoorganization categories. In addition, tailoring software distribution togroups is expensive because many different packages must be created,tested, and managed. Another option is to have users install softwarevia saved settings from other users or groups. However, such user orgroup settings must be manually created. In addition, such user or groupsettings must be known to the user prior to installing and configuringsoftware. The user or group settings may also not be a good match for aparticular user.

U.S. Patent Application Publication No. 2005/0251786 A1 discloses asystem and method for dynamic software installation instructions. Acustomized instruction generator asks a user particular questions. Inturn, the user provides answers, or system parameters. Based upon theuser's response, the customized instruction generator asks dependentquestions to further collect more detailed system parameters. Once thecustomized instruction generator collects the system parameters itrequires, the customized instruction generator retrieves an instructiontemplate that includes parameter placeholders. The customizedinstruction generator replaces the parameter placeholders withcorresponding system parameters, includes particular instructionsubsections based upon the system parameters, and generates customizedinstructions for the user to follow in order to install software on acomputer system.

U.S. Patent Application Publication No. 2002/0087966 A1 discloses aWizard Building Application, Database, and Setup Wizard Application tosolicit and apply user specific information to allow the installation ofsoftware packages by the end user without a software expert to guide theinstallation.

U.S. Patent Application Publication No. 2005/0125509 A1 disclosesautomated software provisioning based upon a set of role definitions fora user of a configurable device such as a computer or personal digitalassistant. Role-based software provisioning automatically distributesthe appropriate software programs and updates to computers that areowned by users based on the role of each user, thereby avoiding the needfor intensive manual efforts to determine which computers need whatsoftware.

U.S. Pat. No. 6,282,711 B1 discloses a method for installing a subset ofsoftware components and data files contained in a component pool in adistributed processing network such as the Internet. An installationpackage delivered to a requesting end user is custom configured at aremote server location prior to delivery to a client system operated bythe user, in response to the user's inputs. The delivered installationpackage contains only the programs, data, and local installation toolsrequired for the user's unique installation requirements. The userinitiates the installation process by connecting to the remote serversystem via a telecommunications link within a distributed processingnetwork. Engaging in a dialog with the server which providesinformational links to server-side databases, the user chooses allsoftware components and options that he desires his software package tohave. After selection of all options, a single package is manufacturedon the server. A single download then occurs of a single file.

II. SUMMARY OF THE INVENTION

In an aspect of the invention, a method is provided for installation andconfiguration of a software product. A software product is installed andthe configuration settings of the software product are determined basedupon a social network of peers.

In another aspect of the invention, a method is provided in which a useris asked at least one question during installation of a softwareproduct. The user is micro-classified into at least one category bycomparing the user's answer to the at least one question to the answersof other users. Configuration settings are downloaded that match theuser's micro-classification.

In another aspect of the invention, a method is provided in which a userselects or subscribes to at least one profile of a user or a group ofusers. The configuration settings for a software product are downloadedbased upon the at least one selected profile.

In another aspect of the invention, a user's configuration settings ofan installed software product are analyzed. The configuration settingsof the installed software product are compared with the configurationsettings of a number of other users' installed software products. If theconfiguration settings are similar, the other users' configurationsettings are downloaded for the user's installation and configuration ofa new software product.

In another aspect of the invention, a user's selected installationoptions may be stored along with an appended directory.

In another aspect of the invention, a system is provided forinstallation and configuration of at least one software product. Thesystem comprises at least one client install package capable ofutilizing a social network for at least one of installing software;transmitting configuration settings; transmitting post-installationconfiguration settings; or responding to post-installation configurationmodifications. The system also comprises a server that stores andaggregates the configuration settings of a plurality of users, formingat least one social network.

In another aspect of the invention, a computer program product isprovided comprising a computer useable medium having a computer readableprogram. When executed on a computer, the computer readable programcauses the computer to install a software product and to determineconfiguration settings of the software product based upon a socialnetwork of peers.

III. BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a flowchart of a method for configuring a software productaccording to a first embodiment of the invention.

FIG. 2 is a flowchart of a method for configuring a software productaccording to a second embodiment of the invention.

FIG. 3 is a flowchart of a method for configuring a software productaccording to a third embodiment of the invention.

FIG. 4 is a flowchart of a method for configuring a software productaccording to a fourth embodiment of the invention.

FIG. 5 is a block diagram of a system according to an embodiment of theinvention.

IV. DETAILED DESCRIPTION OF THE DRAWINGS

FIGS. 1-5 show a system and methods according to the invention thatenable software product configuration settings to be determined by asocial computing paradigm, for example, a network of peers. The socialnetwork of peers may be defined not as “friends” or even people known tothe user, but rather as individuals with similar skills, knowledge, orpreferences. However, the present invention may be used with anydefinition of a peer.

According to the invention, a software product is installed and theconfiguration settings of the software product are determined based upona social network of peers. The invention overcomes limitations of knownapproaches to software installation and configuration. Users are notrequired to self-categorize themselves into broad groups. Further, timeis not spent by individuals or enterprises developing installation andpost-installation automation. Instead, software installation andconfiguration is tailored to the individual, and ongoing configurationchanges can easily be distributed to keep users up-to-date.

In this detailed description, references to “one embodiment”, “anembodiment”, or “in embodiments” mean that the feature being referred tois included in at least one embodiment of the invention. Moreover,separate references to “one embodiment”, “an embodiment”, or “inembodiments” do not necessarily refer to the same embodiment; however,neither are such embodiments mutually exclusive, unless so stated, andexcept as will be readily apparent to those skilled in the art. Thus,the invention can include any variety of combinations and/orintegrations of the embodiments described herein.

FIG. 1 illustrates a method in which a user who is installing a softwareproduct is asked at least one question, 100. The at least one questionmay comprise yes or no questions, multiple choice questions, questionsrequiring a numerical response (e.g., manufacturer or product codes),questions requiring a narrative or text response, questions requiringselection from a predetermined list or menu, or any combination thereof.The at least one question may include, but is not limited to, questionsabout a user's computer usage, questions to gauge a user's computerexperience and/or technological savvy (e.g., whether the user is atechie or novice), questions to gauge a user's personality (e.g.,whether the user is an artist, intellectual, shy, outgoing), questionsabout a user's age, questions about a user's education, or anycombination thereof. The at least one question may be modified based onthe software application being installed.

The following are some example questions. This list is not intended tobe exhaustive. Indented questions are only asked if the user chooses ananswer for the question immediately above it.

1. On average how many hours a week do you use a computer?

2. How many years have you owned a computer?

3. Do you know the manufacturer of your computer?

-   -   1. Do you know the manufacture of your network card?        -   2. What duplex is your network card set to?            -   3. What is your MTU Size?

4. What is the most common task you use your computer for?

5. What is your age?

Once the user has answered the at least one question, the answer isanalyzed and compared to the answer of other users. Based upon thatcomparison, the user is classified into at least one type or category ofuser (micro-classification), 105. The appropriate configuration settingsare downloaded that match the user's micro-classification, 110. Theanswers to the at least one question may be stored and accessed forsubsequent software installations, so that the at least one questionneed not be asked before every installation.

In an embodiment, the at least one question may be asked after apredetermined time has elapsed after installation and configuration of asoftware product to assess changes in the user's knowledge andcapability, 115. Similarly, a user's own modifications to configurationsettings after installation and configuration of a software product maydetermine if the user has become aligned to a different type ofmicro-classification, 120. In either case, the user'smicro-classification is updated accordingly, 130. In an embodiment,changes to the micro-classification may be checked, 140. The user mayopt to periodically check changes to the micro-classification.Alternatively, changes to the micro-classification may be automaticallychecked. The user's configuration settings may be updated based upon anychanges to the micro-classification, 150.

In an embodiment, at least one user may initially have to define genericconfiguration information for the software installation. For example, auser may choose among several coarse tiers of application users andtheir associated default configuration data. However, as more usersconfigure the software application, the data will begin to accuratelyreflect good default configurations for different micro-classifications.

FIG. 2 illustrates a method in which a user may select or subscribe toat least one published profile of a user or group of users that may bestrepresent his or her interests. In an embodiment, the profile of a useror a group of users may be set-up based upon at least one question froma previous software installation and configuration. For example, duringinstallation, a user may be asked to classify himself or herself by oneof more categories including, but not limited to, age, educationallevel, educational institution, class or field of study, degree,geographic location, organization, club, hobbies, interests, company oremployer name, job title, security level, administrator, family name, ortechnological level (e.g., techie, novice). In embodiments, this methodmay be used in conjunction with, or separately from, the method shown inFIG. 1.

A user may request software installation and configuration by selectingor subscribing to at least one of such profiles, 200. For example, auser may select the most popular configuration settings of a group ofcollege students. In embodiments, a searchable list of automaticallygenerated profiles may be available to the user. The user may chooseconfiguration settings based upon more than one profile, i.e., fromdifferent users or groups. For example, a user may want the performanceor privacy settings of a technically savvy user, but may want theinterface settings of a novice user (e.g., a technically savvy personmay be inclined to have a slimmed down interface, preferring to interactvia key commands, which may be undesirable to a novice user).

The software is installed and the configuration settings are downloadedbased upon the at least one selected profile, 210. Subsequent changes tothe configuration settings made by the user may be analyzed, 215. The atleast one profile may be updated accordingly, 220. In an embodiment,changes to the at least one profile may be checked, 230. The user mayopt to periodically check for changes to the configured settings for theat least one selected profile. Alternatively, changes to the user's atleast one selected profile may be automatically checked. The user'sconfiguration settings may be updated based upon any changes to the atleast one selected profile, 240.

FIG. 3 illustrates a method in which software installation andconfiguration is based upon transitive comparison within a network ofpeers. A user's configuration settings of an installed software productare analyzed, 305. The user's configuration settings are compared to theconfiguration settings of a number of other users' installed softwareproducts, 310 (e.g., 100-5,000 users). If the configured settings aresimilar, then the other users' configuration settings are downloaded forthe user's installation and configuration of a new software product,320. In embodiments, the comparing of the configuration settings may bebased upon at least one of a predetermined degree of similarity, forexample, 75% or 85% similarity, of configuration settings or upon apredetermined number of users, for example, the 200 most similar users.

When there are multiple programs for transitive comparison, theconfigured settings of the software product with the most users may beapplied to the user's installation and configuration of a new softwareproduct. Alternatively, the configured settings of an intersection ofusers having the same multiple programs may be applied to the user'sinstallation and configuration of a new software product.

In an embodiment, the comparing of configuration settings may be basedupon the type of software product. For example, for a word processing ortext program, the transitive comparison may look at the configurationsettings of users of similar text applications (e.g., a large number ofusers). However, for games, the transitive comparison may look at theconfiguration settings of other gamers (e.g., a small number of users).

In an embodiment, at least one user may initially have to define genericconfiguration information for the software installation. For example, auser may choose among several coarse tiers of application users andtheir associated default configuration data. However, as more usersconfigure the software application, the data will begin to accuratelyreflect good default configurations for transitive comparison.

FIG. 4 illustrates a method in which a user selects installationoptions, 400. The selected installation options are stored along with anappended directory, 410. Future installations are able to access theinformation contained in the appended directory to alter defaultsettings, 420. For example, if a user changes the install options ordefaults for a game, an appended directory (e.g.,C:\ProgramFiles\Games\) is created. Future installation of games mayaccess the default location “Games”.

In embodiments, an appended directory may occur for at least one of helpdocumentation, document translators, or language preferences based upona user's install selections. For example, a multilingual person mayalways have to go into a sub-option during a software installation toselect features for English, Spanish, or German By accessing an appendeddirectory, a software product installation and configuration willautomatically select those languages in the future, thus saving time andthe potential for missing such features (especially for installationsthat contain many layers of sub-options such as Microsoft Office®).

In embodiments, the method of FIG. 4 may be associated with themicro-classification method of FIG. 1 and/or the profile method of FIG.2. Thus, if most software engineers typically install helpdocumentation, then a directory may be added to the appropriatemicro-classification or to a particular profile, such as a SoftwareEngineer profile. If most technical writers install documenttranslators, then a directory may be added to the correspondingmicro-classification or to a related profile.

In at least one embodiment for any method of FIGS. 1-4, users may begiven choices of privacy settings and/or preferences settings. Forexample, users may be given the choice of at least one of (1) whatsettings they insist may not be changed; (2) whether or not they want toreceive notification before accepting or rejecting configurationsettings; (3) how often they want to receive any micro-classificationquestions or profile questions; (4) whether they want to establish aprofile to allow other users to subscribe to their settings (convenientfor administrators or a family's self-proclaimed computer expert); (5)whether or not they want to receive any updated changes to configurationsettings; (6) whether they want to participate in adding theirconfiguration settings to aggregate stored data; (7) whether they wantto set a minimum percentage of similarity before considering other userspart of their peer network, or (8) whether they want to set a minimumnumber of users in a peer network before applying any of the methods ofFIGS. 1-4. In an embodiment, a user may be able to opt out of any of themethods of FIGS. 1-4.

In enterprise software distribution solutions, the distributionpackaging may disregard a user's preferences. The user's configurationsettings may be determined after the software product is installedaccording to at least one of the methods of FIGS. 1-4.

The methods of this invention can be used with any type of softwareproduct, including applications, operating systems, hardware drivers,and the like. Specific applications include, but are not limited to,word processing or text applications, spreadsheet applications, instantmessaging or text messaging applications, internet or web applications,utilities, integrated development environments, multimedia applications,or games.

FIG. 5 illustrates a system of the invention. System 500 may comprise aclient-server architecture including at least one client installationpackage 505 and at least one social configuration server 510. Inembodiments, the system may also include a scheduling agent 515.

In an embodiment, the at least one client install package may be anextension to a product installation engine, for example, Macromedia'sInstallShield® or Microsoft's Windows® Installer. This extension setupworks for setup executable technologies, online installationtechnologies, and enterprise software distribution systems (e.g., TivoliOrchestrator® and other Tivoli products). In other embodiments, the atleast one client install package may be on a separate server or may be athird party application service that installs and configures othercompanies' software products. The at least one client install package iscapable of utilizing a social network for at least one of installingsoftware; transmitting configuration settings; transmittingpost-installation configuration settings; or responding topost-installation configuration modifications.

The at least one social configuration server may comprise a serverapplication (e.g., IBM's WebSphere®) or a custom socket listener that iscapable of processing multiple simultaneous inbound requests from the atleast one client installation package. The server stores and aggregatesthe configuration settings of a plurality of users, forming at least onesocial network via the methods of FIGS. 1-3. The server retrieves storedconfiguration settings or defaults on demand.

The system may also comprise a scheduling agent 515 for prompting the atleast one client installation package 505 to contact a user, a socialconfiguration server 510, or a combination thereof.

As illustrated in FIG. 1, the client install package may ask a user atleast one question. The client installation package relays the answersto the social configuration server. The server compares the answers toother users' answers and classifies the user into at least one category(micro-classification). The server downloads and the client installationpackage installs configuration settings that match the user'smicro-classification. In an embodiment, the server may store the answersto the at least one question, so the same questions do not need to beasked by a client installation package before every software productinstallation. The server processes incoming configuration modificationsthat are mapped to specific micro-classifications. Over time, thesemapped configuration modifications help define the micro-classificationdefault configuration settings.

The client installation package may relay a user's own modifications toconfiguration settings to the server after software installation todetermine if the user has become aligned to a different type of user. Ifso, the server updates the user's micro-classification accordingly. Inan embodiment, a scheduling agent may prompt the client installationpackage to ask at least one question after a predetermined time haselapsed to allow for changes in user knowledge and capability. Thescheduling agent may check the server for changes to the configuredsettings of the user's micro-classification. In the event of changes tothe user's micro-classification, the server may download and the clientpackage may install changes to the user's configuration settings.

As illustrated in FIG. 2, in response to the selection of orsubscription to at least one profile by the user, the client installpackage relays the selection to the social configuration server. Theserver downloads and the client installation package installs theconfiguration settings of the at least one selected profile. The serverprocesses incoming configuration modifications that are mapped tospecific user or group profiles. Over time, these mapped configurationmodifications help define the defaults for a user or group profile.

The client installation package may relay a user's own modifications toconfiguration settings after software installation to the server. Theserver may update the configured settings of the at least one selectedprofile accordingly. In an embodiment, a scheduling agent may prompt theclient installation package to periodically check the server for changesmade to the configuration settings of the at least one selected profile.If changes have been made to a profile, the server may download updatedconfiguration settings.

As illustrated in FIG. 3, the client installation package may relay auser's configuration settings of a software product to the server, sothe server can process a transitive comparison with the configurationsettings of other users' software products. For example, the configuredsettings of Program A may show that a user is similar to a number ofother users of Program A. The server may download the configurationsettings of Program B, when the other users also have Program Binstalled.

When there are multiple programs for transitive comparison, the servermay use the configured settings of the program with the most users forany new software product installation and configuration. Alternatively,the server may utilize an intersection of users that have the samemultiple programs to determine the appropriate configured settings for anew software product installation and configuration.

In an embodiment, the server may vary the transitive comparison basedupon the type of software product. For example, for a word processing ortext program, the server may look at the configuration settings of usersof similar text applications. However, for games, the server may look atthe configuration settings of other gamers.

As illustrated in FIG. 4, the client install package may relay a user'sselected installation options to the server, which are stored on theserver along with an appended directory. The client installation packagemay automatically utilize the information contained in the appendeddirectory to alter defaults for installation and configuration of futuresoftware products. For example, if a user changes the installationoptions or defaults for a game, an appended directory (e.g.,C:\ProgramFiles\Games\) is created. Future installation of games mayaccess the default location “Games”.

The invention can take the form of an entirely hardware embodiment, anentirely software embodiment or an embodiment containing both hardwareand software elements. In a preferred embodiment, the invention isimplemented in software, which includes but is not limited to firmware,resident software, microcode, etc.

Furthermore, the invention can take the form of a computer programproduct accessible from a computer-usable or computer-readable mediumproviding program code for use by or in connection with a computer orany instruction execution system. For the purposes of this description,a computer-usable or computer readable medium can be any apparatus thatcan contain, store, communicate, propagate, or transport the program foruse by or in connection with the instruction execution system,apparatus, or device.

The medium can be an electronic, magnetic, optical, electromagnetic,infrared, or semiconductor system (or apparatus or device) or apropagation medium. Examples of a computer-readable medium include asemiconductor or solid state memory, magnetic tape, a removable computerdiskette, a random access memory (RAM), a read-only memory (ROM), arigid magnetic disk and an optical disk. Current examples of opticaldisks include compact disk—read only memory (CD-ROM), compactdisk—read/write (CD-R/W) and DVD.

A data processing system suitable for storing and/or executing programcode will include at least one processor coupled directly or indirectlyto memory elements through a system bus. The memory elements can includelocal memory employed during actual execution of the program code, bulkstorage, and cache memories which provide temporary storage of at leastsome program code in order to reduce the number of times code must beretrieved from bulk storage during execution. Input/output or I/Odevices (including but not limited to keyboards, displays, pointingdevices, etc.) can be coupled to the system either directly or throughintervening I/O controllers.

Network adapters may also be coupled to the system to enable the dataprocessing system to become coupled to other data processing systems orremote printers or storage devices through intervening private or publicnetworks. Modems, cable modem and Ethernet cards are just a few of thecurrently available types of network adapters.

Computer program code for carrying out operations of the presentinvention may be written in a variety of computer programming languages.The program code may be executed entirely on at least one computingdevice, as a stand-alone software package, or it may be executed partlyon one computing device and partly on a remote computer. In the latterscenario, the remote computer may be connected directly to the onecomputing device via a LAN or a WAN (for example, Intranet), or theconnection may be made indirectly through an external computer (forexample, through the Internet, a secure network, a sneaker net, or somecombination of these).

It will be understood that each block of the flowchart illustrations andblock diagrams and combinations of those blocks can be implemented bycomputer program instructions and/or means. These computer programinstructions may be provided to a processor of at least one generalpurpose computer, special purpose computer(s), or other programmabledata processing apparatus to produce a machine, such that theinstructions, which execute via the processor of the computer or otherprogrammable data processing apparatus, create means for implementingthe functions specified in the flowcharts or block diagrams.

The exemplary and alternative embodiments described above may becombined in a variety of ways with each other. Furthermore, the stepsand number of the various steps illustrated in the figures may beadjusted from that shown.

Although the present invention has been described in terms of particularexemplary and alternative embodiments, it is not limited to thoseembodiments. Alternative embodiments, examples, and modifications whichwould still be encompassed by the invention may be made by those skilledin the art, particularly in light of the foregoing teachings.

What is claimed is:
 1. A method for installation and configuration of asoftware product, comprising: installing a software product; anddetermining configuration settings of the software product based upon asocial network of peers, wherein the determining configuration settingsof the software product comprises: asking a user at least one questionduring installation of a software product; micro-classifying the userinto at least one category by comparing the user's answer to the atleast one question to the answers of other users; downloadingconfiguration settings that match the user's micro-classification; andasking the user at least one question after a predetermined time haselapsed after installation and configuration of the software product andupdating the user's micro-classification.
 2. A method according to claim1, wherein the at least one question is selected from the groupconsisting of questions about a user's computer usage, questions togauge a user's computer experience or technological savvy, questions togauge a user's personality, questions about a user's age, questionsabout a user's education, and any combination thereof.
 3. A methodaccording to claim 1, further comprising analyzing the user's ownmodifications to configuration settings after installation andconfiguration of the software product and updating the user'smicro-classification.
 4. A method according to claim 1, furthercomprising checking for changes to the user's micro-classification andupdating the user's configuration settings.
 5. A method according toclaim 1, further comprising storing a user's selected install optionsalong with an appended directory.
 6. A method according to claim 1,comprising: selecting or subscribing to at least one profile of a useror a group of users; and downloading configuration settings for thesoftware product based upon the at least one selected profile.
 7. Amethod according to claim 6, wherein the at least one profile of theuser of group of users is based upon at least one category selected fromthe group consisting of age, educational level, educational institution,class or field of study, degree, geographic location, organization,club, hobbies, interests, company or employer name, job title, securitylevel, administrator, family name, or technological level.
 8. A methodaccording to claim 6, wherein the configuration settings are based uponmore than one profile.
 9. A method according to claim 6, furthercomprising checking for changes to the at least one profile and updatingthe user's configuration settings.
 10. A method according to claim 6,further comprising storing a user's selected install options along withan appended directory.
 11. A computer program product, comprising: acomputer readable storage device having a computer readable program,wherein the computer readable program when executed on a computer causesthe computer to: install a software product; and determine configurationsettings of the software product based upon a social network of peers,wherein the determining configuration settings of the software productcomprises: asking a user at least one question during installation of asoftware product; micro-classifying the user into at least one categoryby comparing the user's answer to the at least one question to theanswers of other users; downloading configuration settings that matchthe user's micro-classification; and asking the user at least onequestion after a predetermined time has elapsed after installation andconfiguration of the software product and updating the user'smicro-classification.